
#define TERMINAL 11
#define CONCATENACION 1
#define SUBINDICE 2
#define SUPERINDICE 3
#define DIVISION 4
#define PARENTESIS 5
#define SUBSUPER 6
#define SUPERSUB 7
#define RAIZ 8
#define CONVERSION 9
#define C2CHAR 10

const char * decime_tipo(int x)
{
    if(x == 1)
    {
        return "CONCATENACION";
    }
    if(x == 2)
    {
        return "SUBINDICE";
    }
    if(x == 3)
    {
        return "SUPERINDICE";
    }
    if(x == 4)
    {
        return "DIVISION";
    }
    if(x == 5)
    {
        return "PARENTESIS";
    }
    if(x == 6)
    {
        return "SUBSUPER";
    }
    if(x == 7)
    {
        return "SUPERSUB";
    }
    if(x == 8)
    {
        return "RAIZ";
    }
    if(x == 9)
    {
        return "CONVERSION";
    }
    if(x == 10)
    {
        return "C2CHAR";
    }
    if(x == 11)
    {
        return "TERMINAL";
    }
    return "no es un tipo valido ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";
}
typedef struct tagStruct {
    float x, y, escala; // Heredados
    float ancho, h1, h2; // Sintetizados
    int tipo;
    char caracter;
    int * hijo1;
    int * hijo2;
    int * hijo3;
} nodeType;



typedef struct tagSint {
    float ancho, h1, h2; // Sintetizados
} infoSintetizados;
